6fb98ccd60e27466309db03fc323bb108919d29c,xwiki-core/src/main/java/com/xpn/xwiki/stats/impl/XWikiStatsServiceImpl.java,XWikiStatsServiceImpl,notify,#XWikiNotificationRule#XWikiDocument#String#XWikiContext#,157

Before Change


            }

        addPageView(doc.getFullName(), action, XWikiStats.PERIOD_MONTH, store, context, vobject);
        addPageView(doc.getSpace(), action, XWikiStats.PERIOD_MONTH, store, context, vobject);
        addPageView("", action, XWikiStats.PERIOD_MONTH, store, context, vobject);
        addPageView(doc.getFullName(), action, XWikiStats.PERIOD_DAY, store, context, vobject);
        addPageView(doc.getSpace(), action, XWikiStats.PERIOD_DAY, store, context, vobject);
        addPageView("", action, XWikiStats.PERIOD_DAY, store, context, vobject);

After Change


        if (store == null) return;

        VisitStats vobject = findVisit(context);
        synchronized(vobject) {
            // We count page views in the sessions only for the "view" action
            if (action.equals("view"))
                vobject.incPageViews();
                // We count "save" and "download" actions separately
            else if (action.equals("save"))
                vobject.incPageSaves();
            else if (action.equals("download"))
                vobject.incDownloads();

            vobject.setEndDate(new Date());
            try {
                // In case we have store the old object
                // then we need to remove it
                // before saving the other one
                // because the ID info have changed
                VisitStats oldObject  = vobject.getOldObject();
                if (oldObject!=null) {
                    // Catch exception to not fail here
                    try {
                        store.deleteXWikiCollection(oldObject, context, true, true);
                        vobject.unrememberOldObject();
                    } catch (Exception e) {}
                }

                store.saveXWikiCollection(vobject, context, true);
            } catch (XWikiException e) {
                // Statistics should never make xwiki fail !
                e.printStackTrace();
            }

            addPageView(doc.getFullName(), action, XWikiStats.PERIOD_MONTH, store, context, vobject);
            addPageView(doc.getSpace(), action, XWikiStats.PERIOD_MONTH, store, context, vobject);
            addPageView("", action, XWikiStats.PERIOD_MONTH, store, context, vobject);
            addPageView(doc.getFullName(), action, XWikiStats.PERIOD_DAY, store, context, vobject);
            addPageView(doc.getSpace(), action, XWikiStats.PERIOD_DAY, store, context, vobject);
            addPageView("", action, XWikiStats.PERIOD_DAY, store, context, vobject);